package com.example.sbbsec.domain.pay.entity;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;


/**
 * <p> 微信支付服务器端返回实体
 *
 * @author lowe.yang on 2018-08-30
 */
@Data
@XStreamAlias("xml")
public final class WxPayResponse {

    /**
     * 返回状态码
     * SUCCESS/FAIL
     * 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
     */
    @XStreamAlias("return_code")
    private String returnCode;

    /**
     * 返回信息
     * 返回信息，如非空，为错误原因
     * 签名失败
     * 参数格式校验错误
     */
    @XStreamAlias("return_msg")
    private String returnMsg;

    /**
     * 调用接口提交的小程序ID
     */
    @XStreamAlias("appid")
    private String appId;

    /**
     * 调用接口提交的商户号
     */
    @XStreamAlias("mch_id")
    private String mchId;

    /**
     * 自定义参数，可以为请求支付的终端设备号等
     */
    @XStreamAlias("device_info")
    private String deviceInfo;

    /**
     * 微信返回的随机字符串
     */
    @XStreamAlias("nonce_str")
    private String nonceStr;

    /**
     * 微信返回的签名值
     */
    private String sign;

    /**
     * 业务结果 SUCCESS/FAIL
     */
    @XStreamAlias("result_code")
    private String resultCode;

    /**
     * 错误代码
     */
    @XStreamAlias("err_code")
    private String errCode;

    /**
     * 错误信息描述
     */
    @XStreamAlias("err_code_des")
    private String errCodeDes;

    /**
     * 交易类型，取值为：JSAPI，NATIVE，APP
     */
    @XStreamAlias("trade_type")
    private String tradeType;

    /**
     * 微信生成的预支付会话标识，用于后续接口调用中使用，该值有效期为2小时
     */
    @XStreamAlias("prepay_id")
    private String prepayId;

    /**
     * trade_type为NATIVE时有返回，用于生成二维码，展示给用户进行扫码支付
     */
    @XStreamAlias("code_url")
    private String codeUrl;

}
